// 获取应用实例
const app = getApp();

Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 请求数据
    queryInfo: {
      pageNumber: 1,
      pageSize: 10
    },
    // 上拉时是否继续请求资源，即是否有更多数据
    hasMoreData: false,
    // 接收数据
    tableList: []
  },

  /**
   * 获取分页数据
   * @param {*} message 提示语
   */
  findPage(message) {
    wx.showNavigationBarLoading();
    wx.showToast({
      title: message,
      icon: "loading"
    })
    app.ajax('sport/findPage', 'POST', this.data.queryInfo).then((res) => {
        // 临时数组接收原有的结果列表
        let temp = this.data.tableList;
        // 接收响应结果
        let result = res.rows;
        // 判断是否有数据
        if (result.length > 0) {
          /**
           * 判断用户是上拉加载还是下来刷新
           * 用户操作时页码任为1，则为下拉刷新
           */
          if (this.data.queryInfo.pageNumber == 1) temp = [];
          // 根据结果判断是否有更多数据
          if (result.length < this.data.queryInfo.pageSize) {
            // 获取的新数据长度小于单页数据量
            this.setData({
              tableList: temp.concat(result),
              hasMoreData: false,
            });
          } else {
            // 获取的新数据长度大于等于单页数据量
            this.setData({
              tableList: temp.concat(result),
              hasMoreData: true,
              queryInfo: {
                pageNumber: this.data.queryInfo.pageNumber + 1,
                pageSize: 5
              }
            })
          }
        } else {
          this.setData({
            hasMoreData: false
          });
          // 显示加载动画
          wx.showNavigationBarLoading();
          // 弹出提示
          wx.showLoading({
            title: '没有更多数据了！'
          });
          wx.hideNavigationBarLoading();
          wx.hideLoading();
        };
        // 隐藏加载动画
        wx.hideNavigationBarLoading();
        wx.hideToast();
    });
  },


  toDetails(event) {
    wx.navigateTo({
      url: `/pages/index/details/details?id=${event.target.dataset.id}`,
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let tokenCache = wx.getStorageSync('token')
    if (!tokenCache) {
      // 回调app.js中对应的函数
      app.tokenReadyCallBack = () => {
        this.findPage();
      }
    } else {
      this.findPage("加载中...");
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.getTabBar().init();
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    this.data.queryInfo.pageNumber = 1;
    this.findPage("数据刷新中...");
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    if (this.data.hasMoreData) this.findPage("正在加载更多数据...")
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})